The present disclosure relates to a flash memory system, and more particularly, to an encryption method for a flash memory system including a memory cell array for storing multi-bit data.
A memory cell array of flash memories includes a main area for storing the data and a spare area. The spare area stores an error correction code (ECC) corresponding to the data, and a flash translation layer (FTL). By way of example, when one page of a main area of a flash memory is 512 bytes in size, a spare area is 16 bytes in size.
The FTL translates a logical address generated by a file system during a write operation into a physical address of a corresponding sector wherein an erase operation has been performed.
Error detection and correction techniques effectively restore data errors caused by various factors. For example, data errors may be introduced by various factors during a process of storing data in a memory, and may also be introduced because of distortions of a data transmission channel during transmission of data from a source to a destination.
Various methods for detecting and correcting data errors have been proposed. For example, a Reed-Solomon (RS) code, a Hamming code, a Bose-Chaudhuri-Hocquenghem (BCH) code, and a cyclic redundancy code (CRC) are well known methods for detecting and correcting data errors.
For example, CRC codes may be used to detect data errors and Reed-Solomon codes to correct data errors.
Data is usually stored in the flash memory device together with ECC data. The ECC data is used to correct an error in a read operation of the flash memory device. The number of errors that can be corrected using the ECC data is limited. A bit error in the read operation of the flash memory device can be corrected using the aforementioned error detection and correction techniques, without an additional operation such as a block replacement operation.
In a flash memory having an array of memory cells for storing multi-bit data, a bit error is contained in data due to the intrinsic characteristics of a multi-level cell (MLC). Thus, the flash memory includes a spare area used to store an ECC to correct the bit error. When a bit error occurs, the flash memory system ia able to correct the bit error based on the ECC.
A typical flash memory system encrypts data in the main area to protect the main area from hacking attacks. Also, the flash memory system stores an ECC, corresponding to the encrypted data of the main area, in the spare area.